
jQuery(function() {
	var $ = jQuery;
	$.fn.uploads=function (options) {
		var _this = this;
		var defaults = {
			fileNumLimit: 1,
			fileSizeLimit: 500000000,    // 200 M
			fileSingleSizeLimit: 500000000,    // 50 M
			$fileList:[],
			accept: {
				title: 'Images',
				extensions: 'gif,jpg,jpeg,bmp,png',
				mimeTypes: 'image/*'
			},
			pick:{
				multiple:false
			}
		}
		var config = $.extend(defaults, options),
		    uploader;

        if(config.accept.title === 'Images') {
            var $wrap = $('#uploader'),
                // 图片容器
                $queue = $('<ul class="filelist"></ul>').appendTo($wrap.find('.queueList')),
                // 状态栏，包括进度和控制按钮
                $statusBar = $wrap.find('.statusBar'),
                $imgsrcs = $("#imgsrc"),
                $imgPath = $("#imgPath"),
                $updateImg = $("#updateImg")
        }
		if (!WebUploader.Uploader.support()) {
			alert('Web Uploader 不支持您的浏览器！如果你使用的是IE浏览器，请尝试升级 flash 播放器');
			throw new Error('WebUploader does not support the browser you are using.');
		}
         uploader = WebUploader.create({
			auto: true,
			compress:{
				width: 1920,
				height: 1600,

				// 图片质量，只有type为`image/jpeg`的时候才有效。
				quality: 70,

				// 是否允许放大，如果想要生成小图的时候不失真，此选项应该设置为false.
				allowMagnify: false,

				// 是否允许裁剪。
				crop: false,

				// 是否保留头部meta信息。
				preserveHeaders: true,

				// 如果发现压缩后文件大小比原来还大，则使用原来图片
				// 此属性可能会影响图片自动纠正功能
				noCompressIfLarger: true,

				// 单位字节，如果图片大小小于此值，不会采用压缩。
				compressSize: 150
			},
			pick: {
				id: _this['selector'],
				label: config.name || '选择图片',
				multiple:config.pick.multiple,
			},
			paste: document.body,
			accept: config.accept,
			// swf文件路径
			swf: '//cdn.bootcss.com/webuploader/0.1.1/Uploader.swf',
			disableGlobalDnd: true,
			chunked: true,
			formData: {"md5": ""},
			server: '/uploads',
			fileNumLimit: config.fileNumLimit,
			fileSizeLimit: config.fileSizeLimit,
			fileSingleSizeLimit: config.fileSingleSizeLimit
		}).on('fileQueued', function (file) {
			var mydate
             if(config.accept.title === 'Images') {
                 var date = new Date;
                 var year = date.getFullYear();
                 var month = date.getMonth() + 1;
                 var day = date.getDate()
                 var month = (month < 10 ? "0" + month : month);
				 mydate = year + "-" + month + "-" + day;
             }else{
                 var subStr=new RegExp('.doc')
                 mydate = file.name.replace(subStr,'')
			 }
			this.options.formData.md5 = mydate;
		}).on("uploadStart", function (file) {
              //开始上传
		}).on("uploadSuccess", function (file, data) {
			var imgsrc="/attachment/"+data.path;
				 if(config.accept.title === 'Images') {
					 if (data && data.path) {
						 file.path = data.path;
					 }
					 if (!this.options.pick.multiple) {
						 $updateImg.attr("src", imgsrc).show();
						 $imgPath.val(imgsrc);
					 } else {
						 $imgsrcs.append('<div class="item"><img src="' + imgsrc + '"><span class="del"></span> </div>');
						 config.$fileList.push(imgsrc);
						 $imgPath.val(config.$fileList.join(","));
					 }
				 }else{
                     $('#dataLink').text(data.path).show();
                     $('#_dataLinkPicker').val(imgsrc);
				 }
				A.Msg("上传成功")
		}).on("uploadComplete", function (file) {
			//上传成功失败都会执行
			console.log('uploadComplete',file);

		}).on("uploadProgress", function (file, percentage) {
			//进度条预留在这下次丰富
			//console.log('uploadProgress',file);
		}).on("uploadError", function (file,code) {
			//上传Error
			A.Msg("上传失败")
		}).on("error", function (code) {
			A.Msg(code);
		})
		$(document).on("click",".del",function(){
			var _this = $(this);
			var src = _this.siblings().attr("src");
			_this.parent().remove();
			config.$fileList.removeByValue(src);
			if(config.$fileList.length>0){
				$imgPath.val(config.$fileList.join(","));
			}
			A.Msg("删除成功")
		})
	}

});